// vim:ft=javascript

ARG_WITH("curl", "cURL support", "no");

if (PHP_CURL != "no") {
	var ver_num = NaN;
	var f = PHP_PHP_BUILD + "/include/curl/curlver.h";
	if (FSO.FileExists(f)) {
		var reg = /LIBCURL_VERSION_NUM\s+(0x[a-z0-9]+)/gi;
		var m = reg.exec(file_get_contents(PHP_PHP_BUILD + "/include/curl/curlver.h"));
		if (!!m && m.length >= 2) {
			ver_num = parseInt(m[1]);
		}
	}

	var curl_location;
	if ((curl_location = CHECK_LIB("libcurl_a.lib;libcurl.lib", "curl", PHP_CURL)) &&
		CHECK_HEADER_ADD_INCLUDE("curl/easy.h", "CFLAGS_CURL") &&
		SETUP_OPENSSL("curl", PHP_CURL) >= 2 &&
		CHECK_LIB("winmm.lib", "curl", PHP_CURL) &&
		CHECK_LIB("wldap32.lib", "curl", PHP_CURL) &&
		(((PHP_ZLIB=="no") && (CHECK_LIB("zlib_a.lib;zlib.lib", "curl", PHP_CURL))) ||
			(PHP_ZLIB_SHARED && CHECK_LIB("zlib.lib", "curl", PHP_CURL)) || (PHP_ZLIB == "yes" && (!PHP_ZLIB_SHARED))) &&
		!isNaN(ver_num) &&
		(CHECK_LIB("normaliz.lib", "curl", PHP_CURL) &&
		 CHECK_LIB("libssh2.lib", "curl", PHP_CURL) &&
		 CHECK_LIB("nghttp2.lib", "curl", PHP_CURL))
		) {
		EXTENSION("curl", "interface.c multi.c share.c curl_file.c");
		AC_DEFINE('HAVE_CURL', 1, "Define to 1 if the PHP extension 'curl' is available.");
		ADD_FLAG("CFLAGS_CURL", "/D PHP_CURL_EXPORTS=1");
		if (curl_location.match(/libcurl_a\.lib$/)) {
			ADD_FLAG("CFLAGS_CURL", "/D CURL_STATICLIB");
		}
		PHP_INSTALL_HEADERS("ext/curl", "php_curl.h");
	} else {
		WARNING("curl not enabled; libraries and headers not found");
	}
}
